فراخوانی و مدیریت فرم ها در محیط VBA
اگر سنگ بنای یک بانک اطلاعاتی ایجاد شده در نرم افزار اکسس را جداول بدانیم فرم ها حکم پنجرههایی را دارند که توسط آنها می توانیم بین جداول و کاربر ارتباط برقرار نماییم و اطلاعات لازم را از کاربر دریافت نموده و درون جداول ذخیره کنیم.
و یا حتی در برخی از موارد پاره ای از اطلاعات را از صدا به فراخوانی نموده و در قالب یک فرم به کاربر نمایش بدهیم.
شما به عنوان یک کاربر حرفه ای نرم افزار اکسس نیز به عنوان یک برنامه نویس ماهر بایستی درک روشنی ماهیت فرم ها داشته باشید
و اینکه به خوبی بدانید که چگونه می توانید انواع فرم ها را ایجاد نموده و در کجا ها آنها را فراخوانی کنید
یکی از محیط هایی که در آنها به وفور از فرم ها استفاده می شود محیط برنامه نویسی VBA می باشد.
در واقع شما فرم های خود را در محیط گرافیکی اکسس ایجاد می کنید و از طریق کد های طبیعی می توانید کنترل این فرم ها را در اختیار بگیرید.
آنچه که امروز در این پست آموزشی به آن خواهیم پرداخت این است که چگونه ما میتوانیم با استفاده از کد های VBA به فرم های مختلف موجود در بانک اطلاعاتی خود دست یافته و به مدیریت فرم های اکسس پرداخته و نسبت به اعمال تغییرات مورد نظر خودمان از طریق خط های کد نویسی در محیط بپردازیم.
برای اینکه شما از داخل محیط ویرایشگر کدهای خود بتوانید به یک فرم اشاره نمایید باید با دو مفهوم آشنا شوید .
مفهوم نخست چیزی است که از آن تحت عنوان ” کلکسیون ” نام می بریم .
منظور از کلکسیون (collection ) چیست ؟
کلکسیون اصطلاحی است که به مجموعه ای از اشیایی گفته می شود با هم دارای ویژگی ها و خصوصیات یکسانی هستند .
به عنوان مثال به تصاویر زیر توجه کنید .
تصویر فوق بالا دو گونه مختلف از اشیا می باشد.
ما برای اینکه بهتر بتوانیم این اشیا و مورد بررسی قرار بدهیم اشیایی که با یکدیگر ویژگیها و اشتراکات خاصی دارند را گروه های مربوط به خود قرار می دهیم.
به هر کدام از این گروه ها در اصطلاح یک مجموعه یا کلکسیون میگوییم.
عین همین کار نیز در محیط اکسس مصداق دارد.
فراخوانی و کار با مجموعه ها در اکسس
همانگونه که می دانید نرم افزار اکسس از اشیای مختلفی تشکیل شده است.
به منظور سهولت در بررسی و کار با این اشیا نرم افزار اکسس هر کدام از این اشیا را در مجموعه های مختص به خود طبقه بندی می کند .
به عنوان مثال تمامی فرم های موجود در نرم افزار اکسس تحت مجموعهای به نام Forms طبقه بندی می شود
و یا تمامی گزارش های موجود در نرم افزار تحت مجموعهای به نام Reports قرار می گیرند
کاری که ما میخواهیم صورت دهیم این است که از طریق محیط ویرایشگر کد های VBA خود به این اشیا دسترسی پیدا بکنیم
برای این کار لازم است که دو کار انجام دهیم .
معرفی شی مورد نظر به اکسس
ابتدا باید نام مجموعه ای که شیء مورد نظر ما درون آن قرار دارد را به اکسس معرفی نماییم.
اشاره به نام مجموعه ای که شیء مورد نظر ما در آن قرار دارد می تواند برای برنامه ما بسیار راهگشا باشد.
چرا که ممکن است شما دو شیء مختلف با یک نام مشابه را در نرم افزار اکسس خود داشته باشید
به عنوان مثال اگر شما یک فرم با نام ” student ” و یک گزارش نیز به همین نام داشته باشید وقتی که بخواهید به فرم خود اشاره نمایید آوردن نام شی به تنهایی می تواند باعث سردرگمی نرم افزار گردد.
آیا منظور شما از شی ” student “اشاره به فرم آن دارد یا گزارش آن .
بنابراین توصیه میشود که حتی المقدور در حین فراخوانی یک شی حتما نام کلکسیون مربوطه که شی در آن قرارداد را به برنامه معرفی نمایید.
استفاده از اپرتورهای مناسب
پس ابتدا نام مجموعه مورد نظر خود را ذکر می کنیم .
در مرحله بعد باید از یک اپراتور مناسب بعد از نام مجموعه مورد نظر استفاده کنیم .
لازم به ذکر است که بین نام مجموعه و اپراتور مد نظر نباید هیچ فاصله ای درج گردد .
استفاده از این اپراتور ها بلافاصله بعد از نام مجموعه به برنامه می فهماند که ما قصد فراخوانی یک از اشیاء موجود در این مجموعه را داریم .
واما برویم به سراغ اپراتورهای مورد نظر .
ما در فرا خوانی یک مجموعه از دو اپراتور استفاده می کنیم .
- اپراتور ” ! ”
اولین اپراتور مورد نظر اپراتور یا علامت ! است .
این اپراتور وقتی استفاده می شود که شما قصد دسترسی به اشیایی را دارید که خود شما آنها را ایجاد نموده اید .
- اپراتور نقطه ” . ”
اپراتور نقطه نیز برای دسترسی به اشیا یا ویژگی هایی کاربرد دارد که توسط خود نرم افزار اکسس ایجاد شده اند .
برای فهم بهتر موضوع به مثال های زیر دقت کنید .
- ما فرمی در اکسس ایجاد نموده و نام آن را frm_student گذاشته ایم .
اکنون می خواهیم در محیط کد نویسی خود به این فرم خود دسترسی پیدا کنیم .
برای این منظور داریم :
Forms ! frm_student
۲٫ اکنون می خواهیم عنوان فرم خود را تغییر دهیم .
برای این منظور باید به خاصیت Caption فرم خود دست پیدا نماییم .
Caption خاصیتی است که خود اکسس آن را ایجاد نموده است پس داریم.
“ثبت نام دانش آموزان “=Forms ! frm_student . caption
همان گونه که گفتیم فرم مورد اشاره ما در اکسس یک شی می باشد .
اما در عین حال همین شی نیز به نوبه خود می تواند حاوی چندین شی دیگر نیز باشد .
به تصویر زیر توجه کنید .
در اینجا ما یک فرم داریم که به خودی خود یک شی است .
اما در عین حال می تواند خود شامل مجموعه ای از اشیاء باشد .
در این فرم ما اشیایی همچون کمبو باکس ، برچسب و یک دکمه را می توانیم مشاهده نماییم .
اکنون سوال این است که ما چگونه می توانیم به اشیای موجود در این فرم دسترسی پیدا نماییم .
برای این کار کافی است نام شی مورد نظر را که درون فرم ما قرار دارد را بدانیم .
با فرض اینکه نام دکمه موجود در فرم ما cmd_register باشد برای دستیابی به این دکمه از طریق VBA داریم :
Forms!form2!cmd_register
در ادامه اگر بخواهیم به خصوصیات این دکمه دسترسی پیدا کنیم .
form2 ! cmd_register..backcolor=vbgreen
در کد فوق ما خاصیت رنگ پس زمینه دکمه مورد نظر را به رنگ سبز تغییر می دهیم .
استفاده از عبارت Me در آدرس دهی فرم
یکی از عبارت های پرکاربرد برای اشاره به یک فرم عبارت Me می باشد .
در آدرس دهی یک فرم در خطوط کد به جای اینکه نام فرم را ذکر کنیم می توانیم از عبارت Me بهره ببریم .
این نکته را باید در نظر گرفت که استفاده از این عبارت به جای نام یک فرم فقط در داخل ماژول خود آن فرم امکان پذیر می باشد .
این بدین معنی است که برای اشاره به نام یک فرم از داخل فرم دیگری باید نام فرم مورد نظر را بطور دقیق ذکر نماییم .
به مثال های زیر دقت نمایید .
ما فرمی داریم به نام frm_student که درون آن اشیای زیر را قرار داده ایم .
عنوان فرمی که اکسس ایجاد نموده است “Form 7 ” است .
ما می خواهیم با لود شدن و نمایش فرم به کاربر عنوان فرم ما به “مشخصات دانش آموز” تغییر پیدا کند .
برای این منظور می توانیم از کد زیر بهره ببریم .
در این کد به جای استفاده از نام فرم از کلمه کلیدی Me استفاده شده است .
استفاده از این کلمع در واقع همانند یک راه میانبر است که مار را یک راست به اشیای موجود در داخل آن فرم می برد .
بنابراین با استفاده از آن می توانیم تا حد زیادی در وقت خود صرفه جویی نموده و از طرفی هم خطوط کد مرتب تر و کم حجم تری را به لحاظ تعداد خطوط داشته باشیم .
.
دیدگاهتان را بنویسید